<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 导入jquery -->
    <script src="./jquery.min.js"></script>

</head>

<body>
    <input type="checkbox" name="" id="checkAll">全选
    <button id="btn">反选</button><br>
    <input type="checkbox" class="ck">张三 <br>
    <input type="checkbox" class="ck">李四<br>
    <input type="checkbox" class="ck">皮麻子

    <script>
        // 入口函数
        $(function () {
            // 点击大复选框,所有小复选框的选中状态跟大复选框一样
            $('#checkAll').on('click', function () {
                $('.ck').prop('checked', $(this).prop('checked'))
            })
            // 小复选框控制大复选框
            // 判断被选中的小复选框个数等不等于小复选框的总个数
            // 等于就把大复选框的checked改为true
            $('.ck').on('click', function () {
                // if ($('.ck:checked').length === $('.ck').length) {
                //     $('#checkAll').prop('checked', true)
                // } else {
                //     $('#checkAll').prop('checked', false)
                // }
                $('#checkAll').prop('checked', $('.ck:checked').length === $('.ck').length)
            })

            // 反选
            $('#btn').on('click', function () {
                $('.ck').click()
            })
        })
    </script>
</body>

</html>